<html>
<head>
<title>FindBugs&trade; Fact Sheet</title>
<link rel="stylesheet" type="text/css" href="findbugs.css">

</head>
<body>

<table width="100%"><tr>


<td bgcolor="#b9b9fe" valign="top" align="left" width="20%"> 
<table width="100%" cellspacing="0" border="0"> 
<tr><td><a class="sidebar" href="index.html"><img src="umdFindbugs.png" alt="FindBugs"></a></td></tr> 

<tr><td>&nbsp;</td></tr>

<tr><td><b>Docs and Info</b></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="findbugs2.html">FindBugs 2.0</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="demo.html">Demo and data</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="users.html">Users and supporters</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="http://findbugs.blogspot.com/">FindBugs blog</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="factSheet.html">Fact sheet</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="manual/index.html">Manual</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="ja/manual/index.html">Manual(ja/&#26085;&#26412;&#35486;)</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="FAQ.html">FAQ</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="bugDescriptions.html">Bug descriptions</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="mailingLists.html">Mailing lists</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="publications.html">Documents and Publications</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="links.html">Links</a></font></td></tr> 

<tr><td>&nbsp;</td></tr>

<tr><td><a class="sidebar" href="downloads.html"><b>Downloads</b></a></td></tr> 

<tr><td>&nbsp;</td></tr>

<tr><td><a class="sidebar" href="http://www.cafeshops.com/findbugs"><b>FindBugs Swag</b></a></td></tr>

<tr><td>&nbsp;</td></tr>

<tr><td><b>Development</b></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/tracker/?group_id=96405">Open bugs</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="reportingBugs.html">Reporting bugs</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="contributing.html">Contributing</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="team.html">Dev team</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="api/index.html">API</a> <a class="sidebar" href="api/overview-summary.html">[no frames]</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="Changes.html">Change log</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="http://sourceforge.net/projects/findbugs">SF project page</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/browse/">Browse source</a></font></td></tr> 
<tr><td><font size="-1"><a class="sidebar" href="http://code.google.com/p/findbugs/source/list">Latest code changes</a></font></td></tr> 
</table> 
</td>

<td align="left" valign="top">

<h1>FindBugs&trade; Fact Sheet</h1>

<p> FindBugs looks for bugs in Java programs.&nbsp; It is based
on the concept of <i>bug patterns</i>.&nbsp; A bug pattern is a code
idiom that is often an error.&nbsp; Bug patterns arise for a variety
of reasons:
</p>

<ul>
<li> Difficult language features
<li> Misunderstood API methods
<li> Misunderstood invariants when code is modified during maintenance
<li> Garden variety mistakes: typos, use of the wrong boolean operator
</ul>

<p> FindBugs uses <i>static analysis</i> to inspect Java bytecode
for occurrences of bug patterns.&nbsp;
Static analysis means that FindBugs can find bugs by simply inspecting
a program's code: executing the program is not necessary.&nbsp;
This makes FindBugs very easy to use: in general, you should be
able to use it to look for bugs in your code within a few minutes of downloading it.&nbsp;
FindBugs works by analyzing Java bytecode (compiled class files),
so you don't even need the program's source code to use it.&nbsp;
Because its analysis is
sometimes imprecise, FindBugs can report <i>false warnings</i>,
which are warnings that do not indicate real errors.&nbsp; 
In practice, the rate of false warnings reported by FindBugs
is less than 50%.
</p>

<p>
FindBugs supports a plugin architecture allowing anyone to add new
bug detectors.&nbsp; The <a href="publications.html">publications page</a>
contains links to articles describing how to write a new detector
for FindBugs.&nbsp; If you are familiar with Java bytecode
you can write a new FindBugs detector in as little as a few minutes.
</p>

<p> FindBugs is free software, available under the terms of the
<a href="http://www.gnu.org/copyleft/lesser.html">Lesser GNU Public License</a>.&nbsp;
It is written in Java, and can be run with any virtual machine compatible
with Sun's JDK 1.5.&nbsp; It can analyze programs written for any version
of Java.&nbsp; FindBugs was originally developed by Bill Pugh and David Hovemeyer.&nbsp;
It is maintained by  Bill Pugh, and
a <a href="team.html">team of volunteers</a>.
</p>

<p> FindBugs uses <a href="http://jakarta.apache.org/bcel/">BCEL</a> to
analyze Java bytecode.&nbsp;
As of version 1.1, FindBugs also supports bug detectors written using
the <a href="http://asm.objectweb.org/">ASM</a> bytecode framework.&nbsp;
FindBugs uses <a href="http://dom4j.org/">dom4j</a>
for XML manipulation.
</p>


<hr> <p> 
<script language="JavaScript" type="text/javascript"> 
<!---//hide script from old browsers 
document.write( "Last updated "+ document.lastModified + "." ); 
//end hiding contents ---> 
</script> 
<p> Send comments to <a class="sidebar" href="mailto:findbugs@cs.umd.edu">findbugs@cs.umd.edu</a> 
<p> 
<A href="http://sourceforge.net"><IMG src="http://sourceforge.net/sflogo.php?group_id=96405&amp;type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></A>

</td>

</tr></table>

</body>
</html>
